package cn.com.api.service;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

import org.springframework.stereotype.Service;

import cn.com.api.entity.*;
import cn.com.api.service.base.T_memberServiceBase;
import cn.com.util.*;

/**
 * 
 */
@Service
public interface ApiT_memberService extends T_memberServiceBase {

	// 按照用户类型查询
	public List<ApiT_member> findT_membersByType(Integer c_mtype);

	// 新建一个配送员账号
	public int insertT_memberShipper(ApiT_member t_member);

	public Map<String, Object> shareInfoById(String userid);

	// 根据c_userid查找
	public ApiT_member findT_membersByUserid(String c_userid);

	// 根据查询条件获取信息
	public List<ApiT_member> findT_membersByMap(Map<String, Object> conditions);

	// 编辑配送员
	public int editorT_memberShipper(ApiT_member t_member);

	// 配送员结算列表
	public List<Finance_balance> shipper_cash_list(PageInfo pageInfo, String status, String date1, String date2);

	/********************* 查询用户充值信息 *************************************/
	public List<Member_Charge_List> searchMemberChargeList(PageInfo pageInfo, Map<String, Object> conditions);

	public List<Member_Charge_List> searchMemberChargeDetailList(PageInfo pageInfo, Map<String, Object> conditions);

	// 搜索用户
	public List<ApiT_member> searchMember(Map<String, Object> conditions, PageInfo pageInfo);

	public List<Map<String, Object>> findBrowseHistoryGoods(String cuserid);

	public ApiT_member getMemberById(String cid);

	public void updateMemberMoneyByUserId(String userId, BigDecimal money);

	// 判断用户是否有发布权限
	public boolean findT_membersVerify(Integer type, String user_id);

	public ApiT_member findMemberByCid(String user_id);

	// ******个人钱包模块的********************

	// 最近转账的人员信息
	public List<ApiT_member> getnearlyTransferUser(String user_id, PageInfo pageInfo) throws Exception;

	// 转账给别人
	public Map<String, Object> transferMoney(String user_id, String touser_id, String pwd, String money)
			throws Exception;

	// 生成充值订单
	public Map<String, Object> depositorder(String user_id, String money) throws Exception;

	public Map<String, Object> withdrawCash(String user_id, String bankcard_id, String money, String pwd)
			throws Exception;

	// 接收转账
	public Map<String, Object> receiveMoney(String user_id, String record_id) throws Exception;

	// 生成转账订单
	public Map<String, Object> createtransferorder(String user_id, String touser_id, String createType, String money)
			throws Exception;

	// 生成付款码
	public Map<String, Object> createPayQRcode(String user_id) throws Exception;

	// 扫收款码收款
	public Map<String, Object> scanReceiveMoney(String user_id, String money, String ordernum) throws Exception;

	// 查看付款码对应的订单的状态
	public Map<String, Object> checkPayQRCodeOrder(String ordernum) throws Exception;

}
